正则表达式
Created at 2019-04-04 Updated at 2019-08-15 Category Linux基础
1.正则表达式
grep
-o : 只输出匹配到的内容
-i : 忽略大小写
-n : 输出行号
-v : 取反 显示匹配不到的内容
cat /etc/passwd | grep root -n
ls | grep -n test正则表达式: regular expression
regex
匹配文本
. : 指代任一字符
cat /etc/passwd | grep "r..t"
cat /etc/passwd | grep "r.*t"
* : 前面的字符任意次
[] : 中括号 或者的关系
匹配到任意一个就行
[abc] : a或b或c
[a-z] :
[0-9] :
[A-Z] :
cat /etc/passwd | grep "[0-9]"
[:digit:] : 匹配数字
[:alpha:] : 匹配字母
[:alnum:] : 字母数字
[:space:] : 空格
[:punct:] : 标点符号
[:lower:] : 小写字母
[:upper:] : 大写字母
cat /etc/passwd | grep "[[:upper:]]"
cat /etc/passwd | grep "[[:alpha:]]\+"
匹配次数 :
*: 匹配前面的字符任意次
.*: 任意字符任意次
\+ : 匹配前面字符一次或多次
\? : 匹配前面字符0次或1次
位置 :
^ : 锚定行首
cat /etc/passwd | grep "^root"
cat /etc/passwd | grep "^r"
ls -l | grep ^d
$ : 锚定行尾
cat /etc/passwd | grep "bash$"
cat /etc/passwd | grep "nologin$"
空行: ^$
cat /etc/fstab | grep "^$" -n
词首词尾:
\< \> cat reg.txt
chroot is a command
root is a user
myrooter is nothing
user is rooter
cat reg.txt | grep “<root”
cat reg.txt | grep “root>“
cat reg.txt | grep “<root>“
分组 : \( \)cat fenzu.txt
he likes his liker
she loves her lover
he likes his lover
she loves her liker
\(abc\) \1
cat fenzu.txt | grep "l..e"
cat fenzu.txt | grep "l..e.*l..er"
cat fenzu.txt | grep "\(l..e\).*\1r"